A large number of different types of memories are available for use in computer systems. For example, volatile memory includes random access memories (RAM) that are typically a fast-access memory used for frequent memory reads and writes in a computer system. Common types of RAM include Dynamic RAM (DRAM) and Static RAM (SRAM). RAM is used for all forms of computing today, from small electronic devices to large data centers that need relatively short latency as synchronized read/write accesses. However, volatile memory, as the name implies, loses stored data after power is removed.
Non-volatile memory, which may be used to provide large memory capacity, includes flash memory and phase change memory (PCM). Non-volatile memory retains stored data even after power has been removed. However, non-volatile memories (NVM) typically have much longer and nondeterministic read/write latencies caused by higher bit error rates than RAM. Emerging new persistent memories (PM) could greatly improve the read/write access latencies such as 3D-XPoint memory and fast flash memories with lower cost than DRAM as measured by a dollars per gigabyte cost ratio.
Each memory type has its advantages and disadvantages in terms of latency/performance, capacity, energy usage, etc. As such, one typically sacrifices the advantages of one type of memory when using another type of memory.